package co.edu.uniandes.ecos.itera.tsp.mundo;

import java.io.Serializable;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Avance;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Loc;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.LogD;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.LogT;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Tiempos;

/**
 * Interrupciones en el desarrollo de propiedades
 */

@Tiempos({
	@LogT(date="2011-03-13", min=50, taskId=2),
	@LogT(date="2011-03-19", min=6, taskId=111)
})
@Avance(taskId=2, termino='S')
@LogD(etapaInyectada=Etapa.PLANEACION, idDefecto=4, taskId=80)
public class Interrupcion implements Serializable
{

	/**
	 * 
	 */
	private static final long serialVersionUID = 9092869647657128054L;
	/**
	 * atributos
	 */
	/**
	 * identificador de la interrupcion
	 */
	private int intId;
	/**
	 * identificador de la tarea a la cual se le adiciona la interrupcion
	 */
	private String description;
	/**
	 * fecha en la cual se genera la interrupccion
	 */
	private String date;
	/**
	 * tiempo de duracion de la interrupcion
	 */
	private int  min;
	
	/**
	 * constructores
	 */
	public Interrupcion() 
	{
		// TODO Auto-generated constructor stub
	}
	
	//@Loc(size = 4, taskId = 2)
	public Interrupcion(String pDate,int pIntId,int pMin,String pDescription)
	{
		this.intId=pIntId;
		this.description=pDescription;
		this.date=pDate;
		this.min=pMin;
	}
	
	//@Loc(size = 2, taskId = 111)
	public Interrupcion(int pIntId,String pDescription)
	{
		this.intId=pIntId;
		this.description=pDescription;
	}

	/**
	 * Metodos
	 */
	
	/**
	 * Actualiza el identificador de la interrupcion
	 * @param pIntId identificador de interrupcion a actualizar
	 */
	@Loc(size = 1, taskId = 2)
	public void setIntId(int pIntId)
	{
		this.intId=pIntId;
	}
	
	/**
	 * Retorna el identificador de la interupcion
	 * @return identificador de interrupcion
	 */
	@Loc(size = 1, taskId =2)
	public int getIntId()
	{
		return this.intId;
	}
	
	/**
	 * Actualiza la descripcion de la tarea en la cual se
	 * presento la interrupcion
	 * @param pIdTask identificador de la tarea a la cual se le asigna 
	 * la interrupcion
	 */
	@Loc(size = 1, taskId = 2)
	public void setDescription(String pDescription)
	{
		this.description=pDescription;
	}
	
	/**
	 * Retorna la descripcion tarea a la cual se le asigana
	 * la interrupcion
	 * @return identificador de interrupcion
	 */
	@Loc(size = 1, taskId =2)
	public String getDescription()
	{
		return this.description;
	}
	
	/**
	 * Actualiza la fecha en la cual ocurrio la interrupcion
	 * @param pDate fecha a actualizar 
	 */
	@Loc(size = 1, taskId = 2)
	public void setDate(String pDate)
	{
		this.date=pDate;
	}
	
	/**
	 * Retorna la fecha cuando ocurrio la interrupcion
	 * @return fecha de interrupcion
	 */
	@Loc(size = 1, taskId =2)
	public String getDate()
	{
		return this.date;
	}
	
	
	/**
	 * Actualiza el tiempo de duracion de la interrupcion
	 * @param pMin tiempo de duracion de la interrupcion 
	 */
	@Loc(size = 1, taskId = 2)
	public void setMin(int pMin)
	{
		this.min=pMin;
	}
	
	/**
	 * Retorna el tiempo de duracion de la interrupcion
	 * @return Tiempo de la interrupcion
	 */
	@Loc(size = 1, taskId =2)
	public int getMin()
	{
		return this.min;
	}
	
	@Override
	public String toString()
	{
		return String.format("%s", this.description);
	}
}
